/**
 * Copyright(c) by JNet Smartware Group.
 * All rights reserved. Not distribution or redistribution without
 * any permission of JNet Smartware Group.
 * 
 * @author thuc
 * 2010/07/31
 */
package vn.smartware.co.server.sql.factory;

import java.sql.Connection;

import vn.smartware.co.dto.BillDTO;
import vn.smartware.co.dto.MstRoomDTO;
import vn.smartware.co.dto.ReserveDetailDTO;
import vn.smartware.co.forms.ReserveForm;
import vn.smartware.co.framework.bean.LoginDTO;
import vn.smartware.co.framework.db.factory.SQLManager;
import vn.smartware.co.framework.exception.ServerException;

/**
 * @author thuctt
 * AbstractReserveSQLManager
 */
public abstract class AbstractReserveSQLManager extends SQLManager {

	/**
	 * makeGetReserveInfoSQL
	 * @param room
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeGetReserveInfoSQL(MstRoomDTO room, LoginDTO user,
			Connection conn) throws ServerException;

	/**
	 * makeGetDetailDrinkSQL
	 * @param reserveId
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeGetDetailDrinkSQL(String reserveId, Connection conn)
			throws ServerException;

	/**
	 * makeGetDetailFoodSQL
	 * @param reserveId
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeGetDetailFoodSQL(String reserveId, Connection conn)
			throws ServerException;

	/**
	 * makeCreateReservationSQL
	 * @param form
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeCreateReservationSQL(ReserveForm form,
			LoginDTO user, Connection conn) throws ServerException;

	/**
	 * getMaxReserveNoSQL
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void getMaxReserveNoSQL(Connection conn)
			throws ServerException;

	/**
	 * makeRegisterDetailFoodSQL
	 * @param reserveId
	 * @param food
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeRegisterDetailFoodSQL(String reserveId,
			ReserveDetailDTO food, LoginDTO user, Connection conn)
			throws ServerException;

	/**
	 * makeRegisterDetailDrinkSQL
	 * @param reserveId
	 * @param drink
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeRegisterDetailDrinkSQL(String reserveId,
			ReserveDetailDTO drink, LoginDTO user, Connection conn)
			throws ServerException;

	/**
	 * makeUpdateReservationSQL
	 * @param form
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeUpdateReservationSQL(ReserveForm form,
			LoginDTO user, Connection conn) throws ServerException;

	/**
	 * makeDeleteDetailSQL
	 * @param reserveId
	 * @param detail
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeDeleteDetailSQL(String reserveId, int detail,
			Connection conn) throws ServerException;

	/**
	 * makeDeleteReservationSQL
	 * @param reserveId
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeDeleteReservationSQL(String reserveId,
			Connection conn) throws ServerException;

	/**
	 * makeChkExistBillSQL
	 * @param reserveId
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeChkExistBillSQL(String reserveId, Connection conn)
			throws ServerException;

	/**
	 * makeCreateBillSQL
	 * @param reserveId
	 * @param bill
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeCreateBillSQL(String reserveId, BillDTO bill,
			LoginDTO user, Connection conn) throws ServerException;

	/**
	 * makeUpdateBillSQL
	 * @param reserveId
	 * @param bill
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeUpdateBillSQL(String reserveId, BillDTO bill,
			LoginDTO user, Connection conn) throws ServerException;

	/**
	 * makeDeleteBillSQL
	 * @param reserveId
	 * @param user
	 * @param conn
	 * @throws ServerException
	 */
	abstract public void makeDeleteBillSQL(String reserveId, LoginDTO user,
			Connection conn) throws ServerException;
}
